Rapidly changing communication environments present significant challenges for packet data communications. Mobile radio communication systems are one of the best examples of such an environment. Mobile communication systems must accommodate rapid movement of a mobile radio as the mobile subscriber moves about on foot, in an automobile or other vehicle, etc. Other factors that significantly affect the mobile radio transmission and must be taken into account are interference from other transmitters, noise, and fading of the desired signal.
One way to compensate for the rapidly changing radio environment, without having to change transmit power levels dramatically, is to adapt channel coding and/or modulation parameters used in transmitting data packets over a radio channel. When current radio channel quality conditions are favorable, a larger amount of data may be transmitted during a transmission interval by reducing the amount of channel coding and/or by selecting a higher order modulation scheme. On the other hand, when the current radio channel quality conditions are not as favorable, e.g., the channel is in a fading dip, a smaller amount of data may be transmitted by selecting a more robust set of coding and/or modulation parameters.
In a system that employs fast adaptation of coding and/or modulation parameters, it is usually not known which modulation and/or coding scheme will be used until just prior to transmission because the channel vanes so quickly. As a result, a large amount of data packet processing must be performed after the channel condition is detected and the modulation and/or coding scheme is selected. This large amount of processing must be completed before the data can be transmitted. The result is either an increase in hardware requirements or an increase in the processing delay in the transmitter resulting, respectively, in higher costs or slower adaptation to changing channel conditions. Slower link adaptation means slower data transmission speeds resulting from increased retransmissions or a more conservative selection of coding and modulation parameters.
Typically, multiple operations must be performed to prepare data packets for transmission over a communications channel. Supplemental data bits are typically added to each data packet. Data packet sequence number bits, CRC bits, and tail bits are examples of such supplemental bits. Sequence numbers may be needed to keep track of which packets have been successfully communicated and/or to ensure that the packets are received in the correct order. CRC (cyclic redundancy check) bits are included to aid the receiver in determining whether a data packet contains errors. Insertion of tail bits may be required for certain types of channel encoders, (e.g., turbo encoders and convolutional encoders), to force the encoder into a predefined state at the end of a data block/packet to be transmitted.
After this type of packet processing, a certain number of processed packets may be combined and channel encoded. The number depends on the selected coding rate and/or modulation scheme. The encoded bits are modulated using a desired modulation scheme. The modulation scheme maps bits into points belonging to the selected signal constellation. Example signal constellations include QPSK, 8-PSK, 16-QAM, and 64-QAM.
In order to achieve higher data transmission rates, the tasks outlined above must be performed faster, either by brute force or by increased efficiency. A problem with adapting the modulation scheme and/or coding rate for a rapidly changing communications channel is that how some of those tasks outlined above are performed depends on the particular modulation scheme or coding rate selected. In other words, such tasks cannot be performed until the modulation scheme and/or coding rate is (are) selected. Because the modulation and coding parameters determine the amount of data, (e.g., the number of data packets), to be transmitted in a specific transmission interval, transport block processing operations that depend on the amount of data to transmit cannot be done before the modulation scheme and coding rate for that transmission interval are selected. Unfortunately, when transmission channel conditions are rapidly changing, there is only a short time period after the selection is made to perform the necessary tasks.
One way to increase data processing efficiency is to perform computationally intensive operations that do not depend on the modulation scheme or coding rate in advance. For example, adding supplemental bits to the data packets can be done before a modulation scheme and/or coding rate is selected for a particular transmission interval. Channel encoding is computationally intensive and time consuming, but the desired coding rate of the transmitted data depends on the coding rate selection. However, if the data is first encoded in a fixed rate channel encoder, an instantaneous, desired coding rate may still be achieved by appropriately “puncturing” the fixed rate, encoded data. In this way, only the puncturing operation depends on the selected coding rate. Puncturing allows a large family of different effective coding rates to be obtained from a fixed rate channel encoder output. Fortunately, puncturing can be performed in a much shorter time than it takes to channel encode the data. Using this fixed encoder-puncturing technique, most of the computationally intensive and time consuming channel encoding can be performed on the user data packets in advance rather than waiting until a decision is made regarding the modulation scheme or coding rate to be used.
Indeed, once a decision is made to transmit data using a specific modulation scheme and/or coding rate, there is very little time to process the data packets in time for transmission during an up-coming time slot. For example, the transmission channel conditions for a fast moving (e.g., 150 km/h) mobile data user change so rapidly that the currently selected modulation scheme and/or coding rate becomes outdated very quickly. At high data rates, even puncturing and modulation operations are difficult to perform in the short time available after the selection is made before the upcoming time slot arrives.
The present invention pre-processes data packets by performing processing operations that do not depend on the selection of a particular modulation scheme and/or coding rate. For example, packet processing, channel encoding, and buffering may be performed as soon as the data packets are available. However, in this general implementation, the block size of the channel encoder is only the total number of bits corresponding to a data packet plus its supplemental bits. For some encoder structures, this relatively small data block size negatively impacts the channel encoder performance.
Another disadvantage of a relatively small data block size relates to reliable data packet delivery schemes such as Automatic Repeat reQuest (ARQ). Automatic repeat request is commonly used in packet data systems to ensure correct reception of the transmitted data. In a typical ARQ system, when the data is correctly received, an acknowledge (ACK) signal is sent to inform the transmitter that the data associated with the ACK signal was correctly received. The receiver sends a negative-acknowledge (NACK) signal back to the transmitter each time an error is detected in the received data. This triggers the transmitter to retransmit all or parts of the data.
When a retransmission occurs, it is not necessary for the receiver to discard the data packets previously received. Instead, a technique known as “soft combining” may be used to improve the accuracy of the data decoding. In soft combining, the received packet from the original transmission and any previous retransmissions are combined with the presently received retransmission. The channel decoder uses the combined information of the presently received retransmission and the previously transmitted signal packet(s) to more accurately decode that data packet.
Although transmission of acknowledgement signals is often performed for each individual data packet transmitted, this individual treatment creates a significant control signaling load, e.g., ACK/NACK signals for each packet transmission plus retransmission for each packet not positively acknowledged. One way that control signaling load could be reduced is to acknowledge the entire block of data packets transmitted in a certain transmission interval. That kind of acknowledgement would reduce the amount of ACK/NACK signaling required. However, even if only one packet was received in error, it would still be necessary to retransmit all data packets in the corresponding transmission interval despite the fact the rest of the data packets were correctly received. This is not an effective use of channel resources.
It is an object of the present invention to enable high speed data communications using efficient data packet transport processing.
It is an object of the present invention to enable high speed data communications using a data packet processing scheme that permits fast adaptation of the data transmission modulation scheme and/or coding rate based on one or more changing communication conditions.
It is an object of the present invention to enable high speed data communications using a data packet processing scheme that permits larger data block sizes to increase channel coding efficiency.
It is an object of the present invention to enable high speed data communications using a data block transport processing scheme with acknowledgement signaling for groups of data packets rather than individual data packets to reduce related control signaling and permit retransmission with soft combining.
The present invention solves the problems identified above and meets the objects just set forth by providing a high speed data communication scheme that performs flexible and efficient data block transport processing. Data packets are pre-processed for transmission over a communications channel, including performing a first coding operation on those data packets, to form pre-processed data packets. A current communications condition is detected, e.g., the condition of the communications channel during a current transmission time interval or a particular communications service. The pre-processed data packets are processed based on the detected condition to form processed data packets ready for transmission over the communications channel. The preprocessing does not depend on the current communications condition.
A method for processing data packets in accordance with an example implementation of the present invention includes combining a first and second set of data blocks which are coded in respective fixed rate channel encoders. The combining and encoding may be performed as soon as the data packets arrive. The first and second channel encoded data blocks are combined and then punctured in order to achieve a desired channel rate. The punctured data block is modulated in accordance with a desired modulation scheme. The combining of the channel encoded data blocks along with the puncturing and modulating operations may be performed in accordance with a current communications condition. The condition may be, for example, the quality of the communications channel during a current transmission time interval or a particular communications service. Supplemental information may be added to first and second sets of data packets to produce the first and second set of data blocks, respectively. This adding of supplemental bits may also be performed before the communication condition is detected. If an ARQ scheme is employed, acknowledgment signals and retransmission of data packets are performed for the first and second channel encoded data blocks rather than for individual data packets.
Apparatus in accordance with an example implementation of the present invention may be used in a transmitter. A first processing stage pre-processes data packets for transmission over a communications channel, where a first coding operation is performed on data packets to form the pre-processed data packets. A detector detects a current communications condition. A second processing stage processes the pre-processed data packets based on the detected communications condition to form processed data packets ready for transmission over the communications channel. In contrast to the second processing stage, the first processing stage does not depend on the current communications condition.
Preferably, the first processing stage includes first and second packet combiners to combine multiple processed packets for encoding by one of the first and second channel encoders. The first processing stage further preferably also includes first and second buffers for storing the encoded data from the first and second channel encoders. The second processing stage may include a third combiner which combines the channel encoded data, a puncturing device which removes selected bits in accordance with a desired coding scheme, and a modulator which modulates punctured data in accordance with a desired modulation scheme. The desired combining, puncturing, and modulating in the second processing stage are determined based upon the detected communications condition.